﻿// DigitalDesign
// Project: InformationBoard
// Developer: Montak Oleg
// Created: 09.11.2011
// Last change: 09.11.2011
// Description: interface of PingService - inform clients about the need to update the information

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace Server
{

    #region Пояснения по работе сервиса
    /* 
     * Ping() возвращает версию данных для клиента.
     * PingEx() возвращает подробную информацию о версии данных(версия видео-данных, версия раписания и версия настроек)
     * 
     * 
     * Т.о. используя эти два метода клиент может реализовать какую угодно логику обновления данных:
     * 
     *  1. Использовать Ping(), и при несоответствии версий запрашивать все данные.
     *  2. Использовать PingEx() и при изменении части данных, обновлять только измененные данные.
     *  3. Использовать Ping(), и если данные изменились вызывать PingEx() чтобы узнать что именно изменилось. 
     *  
     */
    #endregion

    [ServiceContract]
    public interface IPingService
    {
        [OperationContract]
        int Ping(int clientId);

        [OperationContract]
        wClientChanx PingEx(int clientId);
    }
}
